15 - Introduction to R

:::

Plot kWh per square foot by year for the following University of Georgia data. Before starting, read the boxed insert in the book on smart editing.


year

square feet

kWh

2007

14,214,216

2,141,705

2008

14,359,041

2,108,088

2009

14,752,886

2,150,841

2010

15,341,886

2,211,414

2011

15,573,100

2,187,164

2012

15,740,742

2,057,364


year <-  c(2007, 2008, 2009, 2010, 2011, 2012)
sqfeet <-  c(14214216, 14359041, 14752886, 15341886, 15573100, 15740742)
kwh <-  c(2141705, 2108088, 2150841, 2211414, 2187164, 2057364)
kwhpersqft <-  kwh/sqfeet
plot(year,kwhpersqft)

Create a matrix with 6 rows and 3 columns containing the numbers 1 through 18.

m <-  matrix(1:18, nrow=6,ncol=3)

Install the measurement package and use one of its functions to do the following conversions:

  • 100ºF to ºC
  • 100 meters to feet
library(measurement)
conv_unit(100,'F','C')
conv_unit(100,'m','ft')


Install the measurement package and run the preceding code.

# Create a new column with the temperature in Celsius
library(measurement)
url <- "http://people.terry.uga.edu/rwatson/data/centralparktemps.txt"
t <- read.table(url, header=T, sep=',')
# compute Celsius
t$Ctemp = round(conv_unit(t$temperature,'F','C'),1)

  • View the web page of yearly CO2 emissions (million metric tons) since the beginning of the industrial revolution
  • Create a new text file using R
  • Clean up the file for use with R and save it as CO2.txt
  • Import (Import Dataset) the file into R
  • Plot year versus CO2 emissions
  • Select all the data on the page and copy it.
  • In RStudio
    • File > New File > Text File
    • Paste the data
    • Remove descriptive information
    • Edit headings so they occupy a single row (e.g., Cement_Production)
    • Remove any remaining blank rows
    • Save the file as CO2.txt
    • Import Dataset > From Local File > CO2.txt
    • plot(CO2$Year,CO2$Total)
    • Save the file for future use
      • write_csv(CO2,"CO2_yearly_emissions.csv")

The saved file is available.


Using the Atlanta weather database and the lubridate package, compute the average temperature at 5 pm in August.
Determine the maximum temperature for each day in August across all years in the input file.

library(dplyr)
library(lubridate)
library(DBI)
conn <- dbConnect(RMySQL::MySQL(), "richardtwatson.com", dbname="Weather", user="db2", password="student")
# Query the database and create file t for use with R
t <- dbGetQuery(conn,"select * from record;")
t$year <- year(t$timestamp)
t$month <- month(t$timestamp)
t$hour <- hour(t$timestamp)
head(t)

#  Compute the average temperature at 5pm in August
t %>% filter(hour==17 & month==8) %>% summarize(mean=mean(airTemp))

#  Compute the maximum temperature for each day in August 
t$day <- day(t$timestamp)
t %>% filter(month==8) %>% group_by(day) %>% summarize(max=max(airTemp))